package com.px.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.px.common.annotation.Excel;
import com.px.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 无人机信息对象 drone_info
 * 
 * @author WRJ
 * @date 2024-08
 */
@Data
public class DroneInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @ApiModelProperty(value = "主键")
    private Long id;

    /** 无人机名称 */
    @ApiModelProperty(value = "无人机名称")
    @Excel(name = "无人机名称")
    private String name;

    /** 设备sn码 */
    @ApiModelProperty(value = "设备sn码")
    @Excel(name = "设备sn码")
    private String sn;

    /** 无人机型号 */
    @ApiModelProperty(value = "无人机型号")
    @Excel(name = "无人机型号")
    private String type;

    /** 飞行器状态 */
    @ApiModelProperty(value = "飞行器状态")
    @Excel(name = "飞行器状态")
    private Integer modeCode;

    @ApiModelProperty(value = "设备状态.0:下线,1:上线")
    @Excel(name = "设备状态.0:下线,1:上线")
    private Integer droneState;

    /** 固件版本号 */
    @ApiModelProperty(value = "固件版本号")
    @Excel(name = "固件版本号")
    private String firmwareVersion;

    /** 风速 */
    @ApiModelProperty(value = "风速")
    @Excel(name = "风速")
    private BigDecimal windSpeed;

    /** 当前风向 */
    @ApiModelProperty(value = "当前风向")
    @Excel(name = "当前风向")
    private Integer windDirection;

    /** 飞行限制高度 */
    @ApiModelProperty(value = "飞行限制高度")
    @Excel(name = "飞行限制高度")
    private Integer heightRestriction;

    /** 飞行限制距离 */
    @ApiModelProperty(value = "飞行限制距离")
    @Excel(name = "飞行限制距离")
    private Integer distanceRestriction;

    /** 飞行器累计飞行航时 */
    @ApiModelProperty(value = "飞行器累计飞行航时")
    @Excel(name = "飞行器累计飞行航时")
    private Integer totalFlightTime;

    /** 飞行器累计飞行总架次 */
    @ApiModelProperty(value = "飞行器累计飞行总架次")
    @Excel(name = "飞行器累计飞行总架次")
    private Integer totalFlightSorties;

    /** 飞行器累计飞行总里程 */
    @ApiModelProperty(value = "飞行器累计飞行总里程")
    @Excel(name = "飞行器累计飞行总里程")
    private Integer totalFlightDistance;

    /** 存储总容量,单位KB */
    @ApiModelProperty(value = "存储总容量,单位KB")
    @Excel(name = "存储总容量,单位KB")
    private Integer storageTotal;

    /** 已使用容量,单位KB */
    @ApiModelProperty(value = "已使用容量,单位KB")
    @Excel(name = "已使用容量,单位KB")
    private Integer storageUsed;

    /** 最近一次保养状态,0:无保养,1:保养中 */
    @ApiModelProperty(value = "最近一次保养状态,0:无保养,1:保养中")
    @Excel(name = "最近一次保养状态,0:无保养,1:保养中")
    private Integer maintainState;

    /** 上一次保养类型,0:无保养,1:飞机基础保养,2:飞机常规保养,3:飞机深度保养,17:机场保养 */
    @ApiModelProperty(value = "上一次保养类型,0:无保养,1:飞机基础保养,2:飞机常规保养,3:飞机深度保养,17:机场保养")
    @Excel(name = "上一次保养类型,0:无保养,1:飞机基础保养,2:飞机常规保养,3:飞机深度保养,17:机场保养")
    private Integer maintainLastType;

    /** 上一次保养时间 */
    @ApiModelProperty(value = "上一次保养时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上一次保养时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date maintainLastTime;

    /** 上一次保养时飞行航时,小时 */
    @ApiModelProperty(value = "上一次保养时飞行航时,小时")
    @Excel(name = "上一次保养时飞行航时,小时")
    private Integer maintainLastFightTime;

    /** 上一次保养时飞行架次 */
    @ApiModelProperty(value = "上一次保养时飞行架次")
    @Excel(name = "上一次保养时飞行架次")
    private Integer maintainLastFightSories;

    /** 责任人账号 */
    @ApiModelProperty(value = "责任人账号")
    @Excel(name = "责任人账号")
    private String dutyCode;

    /** 责任人姓名 */
    @ApiModelProperty(value = "责任人姓名")
    @Excel(name = "责任人姓名")
    private String dutyName;

    @ApiModelProperty(value = "登陆账号")
    @Excel(name = "登陆账号")
    private String username;


}
